package battleline;


import java.util.List;

public class Turno {


	private List<Integer> cartasTacticasPorJugador;
	private Jugador jugadorActual;


	public Turno(Jugador jugadorActual) {
		this.jugadorActual = jugadorActual;
	}
	
	public boolean compruebaNumCTUsadas() {

		int numJugadorActual = jugadorActual.getNumJugador();
		int numCTJugadorActual = cartasTacticasPorJugador.get(numJugadorActual);
		boolean b = true;
		for (int i = 0; i <= cartasTacticasPorJugador.size() && b; i++) {
			if (cartasTacticasPorJugador.get(i) - numCTJugadorActual > 1)
				b = false;
		}
		return b;
	}

	public void usarCartaTactica(CartaTactica ct) {
		boolean b = compruebaNumCTUsadas();
		int numJugadorActual = jugadorActual.getNumJugador();
		if (b) {
			ct.aplicarPoder();
			int numCTJugadorActual = cartasTacticasPorJugador
					.get(numJugadorActual);
			numCTJugadorActual++;
			cartasTacticasPorJugador.set(numJugadorActual, numCTJugadorActual);
		}
	}

	public void ponerCarta(Carta c, Estandarte t) {
		// Aqui recogemos por teclado dos valores que asignara el
		// usuario,numCarta y numEstandarte (ambos seleccionados por el usuario)
		c.setCartaUsada(true);
		t.setNumCartasJugador(jugadorActual);
		
	}

	public Carta seleccionaCarta() {

		Carta c = null;
		int numCarta = 0;
		// Mostrar todas las cartas por pantalla y recoger la que se quiere
		// poner en numCarta

		c = jugadorActual.getCartasJugador().get(numCarta);
		return c;
	}

	
	
	public Estandarte selecionaEstandarte() {
		// El usuario marca estandarte con un "1" en el estandarte elegido(pos)

	//	if (jugadorActual.getEstandartes().get(pos) = 0)
	//		jugadorActual.getEstandartes().get(pos) = 1;
		
		
		Pregunta p = new Pregunta();
		System.out.println("Introduzca el numero del estandarte en el que desea poner la carta ");
		int i = p.preguntar();
		Estandarte t = new Estandarte (i);
		return t;
		
		
	}

	public Jugador getJugadorActual() {
		return jugadorActual;
	}

	public void setJugadorActual(Jugador jugadorActual) {
		this.jugadorActual = jugadorActual;
	}

	/**
	 * @uml.property  name="partida"
	 * @uml.associationEnd  inverse="turno:battleline.Partida"
	 */
	private Partida partida;


	/**
	 * Getter of the property <tt>partida</tt>
	 * @return  Returns the partida.
	 * @uml.property  name="partida"
	 */
	public Partida getPartida() {
		return partida;
	}

	/**
	 * Setter of the property <tt>partida</tt>
	 * @param partida  The partida to set.
	 * @uml.property  name="partida"
	 */
	public void setPartida(Partida partida) {
		this.partida = partida;
	}

	}